package com.imooc.pan.server.modules.user.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.imooc.pan.server.modules.user.context.*;
import com.imooc.pan.server.modules.user.entity.RPanUser;
import com.imooc.pan.server.modules.user.vo.UserInfoVO;

/**
* @author 86156
* @description 针对表【r_pan_user(用户信息表)】的数据库操作Service
* @createDate 2025-04-03 16:45:43
*/
public interface RPanUserService extends IService<RPanUser> {

    Long registerUser(UserRegisterContext userRegisterContext);

    /**
     * 生成用户登录accessToken
     * @param userLoginContext
     * @return
     */
    String login(UserLoginContext userLoginContext);

    /**
     * 用户登出
     * @param aLong
     */
    void exit(Long aLong);

    /**
     * 根据用户名查出密保问题
     * @param checkUsernameContext
     * @return
     */
    String checkUsername(CheckUsernameContext checkUsernameContext);

    /**
     * 用户忘记密码(生成用户修改密码临时token)
     * @param checkAnswerContext
     * @return
     */
    String checkAnswer(CheckAnswerContext checkAnswerContext);

    /**
     * 用户重置密码
     * @param resetPasswordContext
     */
    void resetPassword(ResetPasswordContext resetPasswordContext);

    /**
     * 用户在线修改密码
     * @param changePasswordContext
     */
    void changePassword(ChangePasswordContext changePasswordContext);

    /**
     * 查询用户信息
     * @param aLong
     * @return
     */
    UserInfoVO info(Long aLong);
}
